<?php
/**
 * User: CQH
 * Date: 2017/8/28
 * Time: 11:55
 */
namespace app\common\model;

use think\Model;
use think\db;
/*
 * 配件库表信息model
 */
class Parts extends Model
{ 
	protected $db;
	protected $db_info;
	
	public function __construct()
	{
		$this->db = Db::name("Parts");
		$this->db_info = Db::name("Parts_info");
	}
	
	/**
	 * 配件库表记录增加一条数据
	 * @param $data  ->  数组   ['key' => 'value']
	 * @return bool
	 */
    public function insertOne($data)
    {
        //$this->data($data);
        $result = $this->db->insert($data);
        // 判断结果 并返回
        if ($result !== 1) {
            return false;
        }
        return $result;
    }
    public function insertType($data)
    {
        $result = $this->db_info->insert($data);
        // 判断结果 并返回
        if ($result !== 1) {
            return false;
        }
        return $result;
    }

    /**
	 * 按parts_id主键删除一条数据（逻辑删除）
	 * @param $id
	 * @return $this|bool
	 */
	public function deleteOne($id)
	{
		$result = $this->db->where(array('parts_id'=>$id))->setField('is_delete',1);
		if ($result !== 1) {
			return false;
		}
		return $result;
	}

    /**
     * 按分类ID查询配件
     * @param $tid
     * @return $result|array
     */
    public function queryparts($tid,$field="*")
    {
        $result = $this->db->where(array('type_id'=>$tid,'is_delete'=>0))->field($field)->select();
        if (!$result) {
            return false;
        }
        return $result;
    }


	/**
	 * 根据条件 $where修改一条数据
	 * @param $where ->  条件  ['key' => 'value']
	 * @param $data  ->  数据  ['key' => 'value', 'key' => 'value']
	 * @return $this|bool
	 */
    public function updateOne($where,$data)
    {
    	// 根据条件修改一条数据
    	$result = $this->db->where($where)->update($data);
    	// 判断结果 并返回数据
    	if ($result == false) {
    		return false;
    	}
    	return $result;
    }
	
    /**
     * 根据条件 $where获取单条数据
     * @param $where  ->  数组  ['key' => 'value']
     * @return bool|false|\PDOStatement|string|\think\Collection    
     */
    public function selectOne($where)
    {
    	$userInfo = $this->db->where($where)->cache(true)->find();
    	// 判断结果并返回
    	if ($userInfo == false) {
    		return false;
    	}
    	return $userInfo;
    }
	
    /**
     * 获取所有 未被逻辑删除的数据
     * @return bool|false|\PDOStatement|string|\think\Collection    
     */
    public function getList()
    {
    	$userInfo = $this->db->where(array('is_delete'=>0))->cache(true)->select();
    	// 判断结果 并返回
    	if ($userInfo == false) {
    		return false;
    	}
    	return $userInfo;
    }

    public function getAll($map, $Nowpage, $limits)
    {
        return $this->db->where($map)->where(array('is_delete'=>0))->cache(true)->page($Nowpage,$limits)->select();
    }
    public function getAllType()
    {
        return $this->db_info->select();
    }
    public function getAllCount($map)
    {
        return $this->db->where($map)->where(array('is_delete'=>0))->count();
    }
    public function getOneInfo($id){//查找分类信息
        return $this->db_info->where($id)->find();
    }


    /*
     * 批量插入（设备配件关联表）
     * @author  ligang
     * @param   array   $data   数据（二维数组）
     * @return  int             返回成功条数
     */
    public function insertAllParts($data)
    {
        $result = Db::name('equipments_parts')->insertAll($data);
        return $result;
    }

    /*
     * 插入（设备配件关联表）
     * @author  ligang
     * @param   array   $data   数据（二维数组）
     * @return  int             返回成功条数
     */
    public function insertOneParts($data)
    {
        $result = Db::name('equipments_parts')->insert($data);
        return $result;
    }

    /*
     * 更新（设备配件关联表）
     * @author  ligang
     * @param   array   $data   数据（包含主键）
     * @return  int             返回成功条数
     */
    public function updateOneParts($data)
    {
        $result = Db::name('equipments_parts')->update($data);
        return $result;
    }

    /*
     * 获取数据（设备配件关联表）
     * @author  ligang
     * @param   array   $where   条件
     * @return  int             返回成功条数
     */
    public function getContractParts($where=[],$field = '*',$join=[])
    {
        if (empty($join)){
            $result = Db::name('equipments_parts')->where($where)->field($field)->select();
        }else{
            $result = Db::name('equipments_parts')->where($where)->join($join)->field($field)->select();
        }
        return $result;
    }

}
